package com.hmy.contract.service.contract;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hmy.contract.bo.request.contractProcess.ContractProcessApprovalRequest;
import com.hmy.contract.bo.request.contractProcess.ContractProcessRejectRequest;
import com.hmy.contract.bo.request.contractProcess.ContractProcessStartRequest;
import com.hmy.contract.bo.response.contractProcess.ContractProcessApprovalResponse;
import com.hmy.contract.bo.response.contractProcess.ContractProcessRejectResponse;
import com.hmy.contract.bo.response.contractProcess.ContractProcessStartResponse;
import com.hmy.contract.dal.po.ContractProcessPo;

public interface IContractProcessService extends IService<ContractProcessPo> {

    /**
     * 开始流程
     *
     * @param contractProcessStartRequest 开始流程入参
     * @return {@link ContractProcessStartResponse}
     */
    ContractProcessStartResponse startProcess(ContractProcessStartRequest contractProcessStartRequest);

    /**
     * 通过
     *
     * @param contractProcessApprovalRequest 通过入参
     * @return {@link ContractProcessApprovalResponse}
     */
    ContractProcessApprovalResponse approval(ContractProcessApprovalRequest contractProcessApprovalRequest);

    /**
     * 拒绝
     *
     * @param contractProcessRejectRequest 拒绝入参
     * @return {@link ContractProcessRejectResponse}
     */
    ContractProcessRejectResponse reject(ContractProcessRejectRequest contractProcessRejectRequest);
}
